<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <canvas width="100" height="100" style="background-color: cadetblue;"></canvas>

  <img
    src=""
    alt="">

  <script>
    let canvas = document.querySelector('canvas');
    let ctx = canvas.getContext('2d');

    // 把一张图片放到画布中
    let img = document.createElement('img');
    img.src = './assets/images/sample.jpg';

    // 需要在图片加载完成后，才能把图片放到画布上
    img.onload = function () {
      // 图片, 图片的坐标, 图片的坐标, 图片的大小, 图片的大小, 画布的位置, 画布的位置, 画布的大小, 画布的大小
      // ctx.drawImage(img, 300, 300, 300, 300);
      // 图片剪裁
      ctx.drawImage(img, 300, 300, 300, 300, 0, 0, 100, 100);

      // 需要把canvas转成字符串或者文件对象格式
      // 1. 把canvas转成字符串格式
      let str = canvas.toDataURL('image/jpeg', 0.4); // base64字符串表示图片
      // console.log(str);

      // 2. 把canvas转成文件对象格式
      canvas.toBlob(function (blob) {
        console.log(blob); // blob对象，如果把它append到FormData中，会自动转成文件对象，从而实现文件上传
      });
    }
  </script>
</body>

</html>